<?php
/**
 * Created by PhpStorm.
 * User: 50223
 * Date: 18.8.7
 * Time: 10:42
 */
namespace App\Models;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\Model;

class Auth extends Model
{
    public function check_auth($userId,$route_url)
    {
//    这是一个复杂的sql
        /**
         * 事务查询
         * 先查询出当前userId对应的角色  角色有多个
         * 在根据角色id查出对应的权限  权限push
         */
        if ($userId) {
            $roleId = DB::table('user_roles')->where('user_id', '=', $userId)->first();
            $roleId = explode(',', $roleId->role_id);
            $role_length = count($roleId);
            for ($i = 0; $i < $role_length; $i++) {
                $perissions[] = explode(',', DB::table('role_permissions')->where('role_id', $roleId[$i])->value('permission_id'));
            }
//            查出该角色对应的权限id
            $arr = array_values(array_unique(call_user_func_array('array_merge', $perissions)));
            $arr_length = count($arr);
            for ($i = 0; $i < $arr_length; $i++) {
                $perissionsAll[] = DB::table('permissions')->where('id',$arr[$i])->value('urls');
            }
//            print_r($perissionsAll);
//            echo $route_url;
            if(in_array($route_url,$perissionsAll)){
//                echo  "<script> alert('你是有权限的')</script>";

            }else{

//                echo  "<script>
//                           alert('你无权响应该请求 如有疑问请联系管理员')  ;
//                   </script>";

            }

        }else{
            echo  "<script> location.href='/auth/login'</script>";exit;

        }
    }
}